package com.esd.db.dao;

import java.util.List;
import java.util.Map;

import com.esd.db.model.salary;

public interface salaryMapper {

    int deleteByPrimaryKey(Integer id);

    int insert(salary record);

    int insertSelective(salary record);

    salary selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(salary record);

    int updateByPrimaryKey(salary record);
    
    int insertTimer(Map<String,Object> map);
    
    List<Map<String,Object>> selectSalary(Map<String,Object> map);
    
    int selectSalary100Count(Map<String,Object> map);
    
    Double selectSUMSalary(Map<String,Object> map);
    
    List<Map<String,Object>> selectWorkerSalaryByWorkerId(Map<String,Object> map);
    
    List<Map<String, Object>> selectMoneyList2(Map<String, Object> map);
    
    Double selectSumMarkTime2(Map<String, Object> map);
    
    int insertPayOffInfor(Map<String,Object> map);
    
    int insertPayOffInfor1(Map<String,Object> map);
    
    Double selectMoneyTotle(Map<String,Object> map);

	int insertSalary(Map<String, Object> map);

	int insertSalaryForQuickInspection(Map<String, Object> map);
	
	/**
	 * 获取工作组列表的 标注时间和工作组编号
	 * @param map
	 * @return
	 */
	List<Map<String, Object>> getWorkGroupCodeAndSumMarkTimeList(Map<String, Object> map);
	
	/**
	 * 工作组列表分页总数
	 * @param dateType
	 * @param beginDate
	 * @param endDate
	 * @param workGroupNameCondition
	 * @return
	 */
	int selectWorkGroupListCount(Map<String, Object> map);
	
	/**
	 * 查询工作者id
	 * @param map
	 * @return
	 */
	List<Integer> selectWorkerIdForInspByDay(Map<String, Object> map);

	int insertSalaryForInspByDay(Map<String, Object> map);
	
	/**
	 * 查询标注时间  ---  巡审
	 * @param map
	 * @return
	 */
	double getSumMarkTimeForInspByDay(Map<String, Object> map);
	
	/**
	 * 将退回时间存入salary表中 存为负数
	 * @param map
	 * @return
	 */
	int insertSendBackTime(Map<String, Object> map);
	
	/**
	 * 查询标注时间  ---  包审
	 * @param map
	 * @return
	 */
	double getSumMarkTimeForInspByPackage(Map<String, Object> map);
	
	/**
	 * 查询标注时间  ---  快速审核
	 * @param map
	 * @return
	 */
	double getSumMarkTimeForQuickInspection(Map<String, Object> map);
	
	/**
	 * 修改自原来的getSUMSalary方法 新方法中区分了工作组
	 * @return
	 */
	List<Map<String, Object>> selectWorkGroupAndSumMarkTime(Map<String, Object> map); 
	
	Map<String, Object> selectTotleHoursAndTotleMoney(Map<String,Object> map);

	List<Map<String, Object>> selectInfoToInsertSalaryForInspByWorker(Map<String, Object> map);
	
	/**
	 * 将一层三层任务分别存入 如果有的话  大多数可能是只单独存入一层或者三层
	 * @param salaryInfoForInsert
	 * @return
	 */
	int insertSalaryForOneAndThreeLayer(Map<String, Object> map);
	
	List<Map<String, Object>> selectInfoToInsertSalaryForInspByDay(Map<String, Object> map);

	List<Map<String, Object>> selectInfoToInsertSalaryForInspByPackage(Map<String, Object> map);

	List<Map<String, Object>> selectInfoToInsertSalaryForQuickInspection(Map<String, Object> map);

	Map<String, Object> getSumMarkTimeAndSalaryValueForViewOfReferrals(Map<String, Object> map);

	List<Map<String, Object>> selectSalaryOfOneLayerAndThreelayerByWorkerId(Map<String, Object> map);
}